<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        /* var x = 10,
            y = 20,
            z = 30;
        [x, y, z] = [z, x, y]
        document.write("x:" + x + " y:" + y + " z:" + z) */
        /*  const obj = {
             name: 'xm',
             age: 15
         }
         let {
             name,
             age,
             hobby
         } = obj */
        /* let listData = [{
            title: '六月份能找到工作吗',
            date: '020.6.3'
        }, {
            title: '五月份能找到工作吗',
            date: '020.5.3'
        }, {
            title: '四月份能找到工作吗',
            date: '020.4.3'
        }]
        let arr = []
        listData.forEach(function ({
            title,
            date
        }) {
            arr.push(`<li><span>${title}</span><span>${date}</span></li>`)
        })
        let ul = document.createElement('ul')
        ul.innerHTML = arr.join('')
        document.body.appendChild(ul) */
        /*         const tmpl = function () {

                    return {

                        title: "前端",

                        data: [{

                            title: '布局基础',

                            date: ["html", "css"]

                        }, {

                            title: '网页特效',

                            date: ["javascript", "jquery"]

                        }, {

                            title: '框架',

                            date: ["bootstrap", "vue"]

                        }]

                    }

                }


                const {
                    title,
                    data
                } = tmpl();

                let arr = [];

                arr.push(`<caption>${title}</caption>`);

                data.forEach(function ({
                    title,
                    date
                }) {

                    let tr = `

                <tr>

                   <td>${title}</td> 

                   <td>${date[0]}</td>

                   <td>${date[1]}</td>

                </tr>

                `

                    arr.push(tr);

                });


                const table = document.createElement('table');

                table.innerHTML = arr.join('');

                table.border = 1;

                table.style.textAlign = 'center';

                document.body.appendChild(table); */
        /*  var map = {
             A: 'j12',
             B: 'd38',
             C: '66r'
         }
         var words = 'ABC'
         var str = 'ACBABBCCAA'
         var ostr = Array.prototype.slice.call(str)
         ostr.forEach((word, index) => {
             if (words.includes(word)) {
                 ostr[index] = map[word]
             }

         });
         console.log(ostr.join(''))

         var ostr1 = ''
         for (let word of str) {
             if (words.includes(word)) {
                 ostr1 += map[word]
             }
         }
         console.log(ostr1) */
        /*   function isNaN(value) {
              return value !== value
          }
          console.log(isNaN(NaN))
          console.log(isNaN(-NaN))
          console.log(isNaN(3))
          console.log(Number.isNaN(555)) */
        /*  let a = Number(0b111);

         let b = Number(0o10);

         console.log(a);

         console.log(b);

         console.log(Number.isNaN(a));

         console.log(Number.isNaN(b));

         console.log(Number.isFinite(a));

         console.log(Number.isFinite(b)); */
        /*  function Rest(...nums) {
             let sum = nums.reduce(function (a, b) {
                 return a + b
             }, 0)
             let len = nums.length || 1
             return sum / len
         }
         document.write(Rest([1, 2, 3, 4])) */
        //=>没有this,setTimeout是window调用的
        /*  var age = 16
         const student = {
             name: '小美',
             age: 18,
             getAge: function () {
                 console.log(this.age) //this为student
             },
             getAge2: function () {
                 setTimeout(function () {
                     console.log(this.age) //this为window
                 }, 500)
             },
             getAge3: function () {
                 setTimeout(() => {
                     console.log(this.age) //this为student
                 }, 500)
             }
         }
         student.getAge() //18
         student.getAge2() //16
         student.getAge3() //18 */
        /* function insert(value) {

            return {

                into: function (array) {

                    return {

                        after: function (afterValue) {

                            array.splice(array.indexOf(afterValue) + 1, 0, value);

                            return array;

                        }

                    };

                }

            };

        }



        console.log(insert(2).into([1, 3]).after(1));

        // 补充代码

        insert = (value) => {

            return {

                into: (array) => {

                    return {

                        after: (afterValue) => {

                            array.splice(array.indexOf(afterValue) + 1, 0, value);

                            return array;

                        }

                    };

                }

            };

        }

        console.log(insert(2).into([1, 3]).after(1)); */
        /*
        （1）根据实参的传递，value=2 ,array=[1,3] , ,afterValue=1。

        （2）代码中，array.indexOf(afterValue) 意思是从array中检测是否有1 ，有的，返回了索引0（indexOf检测到对应的项，返回相应的索引），然后加1，是1；。

        （3）所以代码就等于array.splice(1,0,2)

        （4）要了解splice（）这个方法的用法：

            第一个参数是添加或者删除元素的位置，第二个参数是删除多少个元素。第三个参数是要添加的新元素。

            array.splice(1,0,2)中，表示在索引为1的地方删除了0个元素，即一个元素也没有删除，并添加了一个新元素2 ，所以array最终的结果为 [1,2,3]。

        */
        /* var arr = []
        for (let i = 0; i < 10; i++) {
            arr.push(parseInt(Math.random() * 101))
        }
        var arr1 = arr.sort()
        document.write(arr1 + "<br/>")
        document.write("最大值是：" + Math.max(...arr1))  ...arr1返回的并不是一个数组，而是各个数组的值。只有[...arr1]才是一个数组，所以...arr1可以用来对方法进行传值
        document.write("最小值是：" + Math.min(...arr1)) */
        /* const res = [1, 3, 5, 7, 6].find(function (value, index, arr) {
            return value % 2 === 0
        })
        console.log(res) */
        /*  const res = [1, 3, 5, 7, 6].find((value, index, arr) =>
             value % 2 === 0
         ) */
    </script>
</body>

</html>